`ifndef FUNC_COV_SV
`define FUNC_COV_SV


class func_cov extends uvm_object;

	covergroup cg with function sample(ahbl_transaction ahbl_tr, apb_transaction apb_tr);
		option.per_instance = 1;

		haddr : coverpoint ahbl_tr.addr 	{ bins a1 = {'h0000};
																				bins a2 = {'h0001};
																				bins a3 = {'hFFFF};
																				bins a4 = {'hFFFE};
																				bins a5[4] = {['h0002 : 'hFFFD]};
																			}
		hwrite : coverpoint ahbl_tr.hwrite;
		hburst : coverpoint ahbl_tr.hburst;
		hsize  : coverpoint ahbl_tr.hsize;

		cross haddr, hwrite, hburst, hsize;
	endgroup : cg

	function new(string name = "func_cov");
		super.new(name);

		cg = new();
		cg.set_inst_name({get_full_name(), ".", name, "cg"});
	endfunction : new

endclass : func_cov


`endif // FUNC_COV_SV
